package com.token.keys;

import com.alibaba.fastjson.JSONObject;

import java.lang.reflect.Field;

/**
 * 抽象类，处理公共部分。
 * @author chenjianxiong 2020/2/17
 */
public abstract class BasePuKeys {
    /**
     * 构造函数
     */
    public BasePuKeys() {
        initParam();
    }

    /**
     * 把成员变量转成JSON
     * @return JSONObject
     * @throws Exception 错误抛出
     */
    public JSONObject toJsonObject() throws Exception{
        JSONObject json = new JSONObject();
        Field[] fields = this.getClass().getDeclaredFields();
        for(Field field : fields){
            json.put(field.getName(),field.get(this));
        }
        return json;
    }

    /**
     * 初始化参数
     */
    protected abstract void initParam();
}
